﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data.SqlClient;
using moviecentro;
using CruzSur.Models;
using System.Data;

namespace CruzSur.Controllers
{
    public static partial class AppDa
    {

        public static List<MovimientoModel> ListarMovimientos(string NroPlaca, int TipoMovimento , DateTime FechaIni, DateTime FechaFin)
        {
            // ----- Lista C01
            List<MovimientoModel> ListData = new List<MovimientoModel>();
            System.Data.SqlClient.SqlParameter[] param;

            
                param = new System.Data.SqlClient.SqlParameter[4];

                param[0] = new SqlParameter("@NroPlaca", SqlDbType.VarChar);
                param[0].Value = NroPlaca;

                param[1] = new SqlParameter("@FechaIni", SqlDbType.DateTime);
                param[1].Value = FechaIni;

                param[2] = new SqlParameter("@FechaFin", SqlDbType.DateTime);
                param[2].Value = FechaFin;

                param[3] = new SqlParameter("@TipoMovimiento", SqlDbType.Int);
                param[3].Value = TipoMovimento;

                SqlDataReader reader = dbgestor.ListarSql2("exec MovimientoListar  @NroPlaca , @FechaIni, @FechaFin, @TipoMovimiento ", param);

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    MovimientoModel ListItem = new MovimientoModel();

                    ListItem.Fecha_Hora = reader.GetDateTime(reader.GetOrdinal("Fecha_Hora"));
                    ListItem.ID = reader.GetInt32(reader.GetOrdinal("ID_Movimiento"));
                    ListItem.Placa = reader["Nro_Placa"].ToString();
                    ListItem.Chofer = reader["ConductorNombre"].ToString();
                    ListItem.Brevete = reader["Brevete"].ToString();
                    ListItem.TipoMovimiento = reader["TipoMovimientoNombre"].ToString();
                    ListItem.Origen = reader["LUGARORIGEN"].ToString();
                    ListItem.Destino= reader["LUGARDESTINO"].ToString();
                    
                    ListData.Add(ListItem);
                }
            }
            reader.Close();

            return ListData;
        }

        public static MovimientoModel ListarMovimientosItem(string IDItem)
        {
            // ----- Lista C01
            List<MovimientoModel> ListData = new List<MovimientoModel>();

            System.Data.SqlClient.SqlParameter[] param = new System.Data.SqlClient.SqlParameter[1];
            param[0] = new SqlParameter("@ID_Movimiento", SqlDbType.Int);
            param[0].Value = IDItem;

            SqlDataReader reader = dbgestor.ListarSql2("exec MovimientoListar_ID @ID_Movimiento ", param);

            while (reader.Read())
            {
                MovimientoModel ListItem = new MovimientoModel();
                ListItem.Fecha_Hora = reader.GetDateTime(reader.GetOrdinal("Fecha_Hora"));
                ListItem.ID = reader.GetInt32(reader.GetOrdinal("ID_Movimiento"));
                ListItem.Placa = reader["Nro_Placa"].ToString();
                ListItem.Chofer = reader["ConductorNombre"].ToString();
                ListItem.Brevete = reader["Brevete"].ToString();
                ListItem.TipoMovimiento = reader["TipoMovimientoNombre"].ToString();
                ListItem.Origen = reader["LUGARORIGEN"].ToString();
                ListItem.Destino = reader["LUGARDESTINO"].ToString();

                ListItem.TipoMovimiento_ID = reader.GetInt32(reader.GetOrdinal("Tipo_Movimiento"));

                ListItem.OrigenID = reader.GetInt32(reader.GetOrdinal("Agencia_Origen"));
                ListItem.DestinoID = reader.GetInt32(reader.GetOrdinal("Agencia_Destino"));
                
                
                ListData.Add(ListItem);
            }
            reader.Close();

            return ListData[0];
        }

        public static void MovimientoActualizar(MovimientoModel item)
        {

            dbsql.ClearSQL();
            dbsql.AddTable("Movimiento_Unidades");

            dbsql.AddField(SqlDbType.VarChar, "NRO_PLACA", item.Placa);
            dbsql.AddField(SqlDbType.VarChar, "BREVETE", item.Brevete);


            dbsql.AddField(SqlDbType.DateTime, "FECHA_Hora", DateTime.Now);

            dbsql.AddField(SqlDbType.Int, "Tipo_Movimiento", item.TipoMovimiento_ID);

            dbsql.AddField(SqlDbType.Int, "Agencia_Origen", item.OrigenID);
            dbsql.AddField(SqlDbType.Int, "Agencia_Destino", item.DestinoID);

            dbsql.AddWhere(SqlDbType.Int, "ID_Movimiento", item.ID);

            dbsql.UpdateNow();
        }

        public static void MovimientoInsertar(MovimientoModel item)
        {

            dbsql.ClearSQL();
            dbsql.AddTable("Movimiento_Unidades");
            
            dbsql.AddField(SqlDbType.VarChar, "NRO_PLACA", item.Placa);
            dbsql.AddField(SqlDbType.VarChar, "BREVETE", item.Brevete);
            
           
            dbsql.AddField(SqlDbType.DateTime, "FECHA_Hora", DateTime.Now);

            dbsql.AddField(SqlDbType.Int, "Tipo_Movimiento", item.TipoMovimiento_ID);

            dbsql.AddField(SqlDbType.Int, "Agencia_Origen", item.OrigenID);
            dbsql.AddField(SqlDbType.Int, "Agencia_Destino", item.DestinoID);

            

            dbsql.InsertNow();
        }
    }
}